package com.kmxd.ams.client.system;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.kmxd.ams.client.system.dto.SysConfigAddDTO;
import com.kmxd.ams.client.system.dto.SysConfigEditDTO;
import com.kmxd.ams.client.system.dto.SysConfigQueryDTO;
import com.kmxd.ams.client.system.vo.*;
import com.kmxd.ams.infra.system.entity.SysConfig;
import java.util.List;

/**
 * 系统配置 服务类
 *
 * @author admin
 * @since 2021-06-23
 */
public interface ISysConfigSvc extends IService<SysConfig> {

  /**
   * 分页查询
   *
   * @param reqPage
   * @param req
   * @return
   */
  Page<SysConfigListVO> selectPage(Page reqPage, SysConfigQueryDTO req);

  /**
   * 查询列表
   *
   * @param req
   * @return
   */
  List<SysConfigListVO> selectList(SysConfigQueryDTO req);

  /**
   * 查询所有
   *
   * @return
   */
  List<SysConfig> selectAll();

  /**
   * 新增
   *
   * @param req
   */
  void add(SysConfigAddDTO req);

  /**
   * 修改
   *
   * @param req
   */
  void edit(SysConfigEditDTO req);

  /**
   * 删除
   *
   * @param ids
   */
  void remove(String ids);

  /**
   * 查看
   *
   * @param id
   * @return
   */
  SysConfigVO view(Long id);

  /**
   * 获取流程配置
   *
   * @return
   */
  FlowConfigVO getFlowConfig();

  /**
   * 获取四性检测配置
   *
   * @return
   */
  SxConfigVO getSxConfig();

  /**
   * 四性检测需要编码字段配置
   *
   * @return
   */
  SxCheckVO getSxCheck();

  List<FileCategoryVO> getFileCategory();

  /**
   * 获取参数value
   *
   * @param key
   * @return
   */
  SysConfig getConfigValueByKey(String key);

  /**
   * 根据key获取配置项内容
   *
   * @param key
   * @return
   */
  String getConfigContentByKey(String key);

  /**
   * 获取卡配置信息
   *
   * @return
   */
  CardConfigVO getCardConfig();

  /** 清除所有缓存 */
  void clearAllCache();
}
